#ifndef _xNodeType_TM_H_
#define	_xNodeType_TM_H_

#include "xNodeType.h"
#include "xMappingNodeTypeLibrary.h"
#include "WOP_Entry.h"

class xNodeType_TM : public xNodeType {
private:
	std::vector< xMappingNode * > outNodes_;

protected: 
	xMappingNodeTypeDescriptor* _vd ;
	WOP_Entry * entry_;
	static string valid_rhs_pair[][2];
public:

	xNodeType_TM( const std::string & vmname );
	xNodeType_TM( int index, WOP_Entry * entry );
	virtual void		setupPorts() ;
	virtual string		getType();
	virtual void		createMappedObject() ;
	virtual xParameter  toXParameter(string toType, xOutMappingPort *linkedop); 
	virtual bool		update() ;
	virtual string toMDString(MDSType) ;
	int     parseMDString(vector<string>& tokens, int start_index);
	virtual bool verify_rhs_link(xOutMappingPort *left, xInMappingPort *right, xNodeType* rightnode);
	virtual bool verify_lhs_link(xOutMappingPort *left, xNodeType* leftnode, xInMappingPort *right);
};

#endif
